A synthesis of dryland restoration techniques.

Purpose

To quantitatively examine the efficacy of vegetation restoration in drylands globally.

Questions

  1. What is the global extent of research that directly examined restoration of drylands?
  2. What were the common measures?
  3. Is the restoration of vegetation a common and primary focus?
  4. How frequently does the restoration measure outcomes beyond the focal species?
  5. What were the primary restoration goals as reported by primary authors?
  6. How much variation was there in the techniques tested and how long were experiments monitored and tested?
  7. How relatively effective were the techniques?

Step 2. Sort

A summary of sort process using PRISMA.

library(PRISMAstatement)
prisma(found = 1504,
       found_other = 5,
       no_dupes = 1039, 
       screened = 1039, 
       screen_exclusions = 861, 
       full_text = 178,
       full_text_exclusions = 100, 
       qualitative = 78, 
       quantitative = 78,
       width = 800, height = 800)

Step 3. Synthesize

Check data and calculate necessary measures.

data <- read_csv("data/data.csv")
data <- data %>%
  mutate(lrr = log(mean.t/mean.c), rii = ((mean.t-mean.c)/(mean.t + mean.c)), var.es = ((sd.t^2/n.t*mean.t^2) + (sd.c^2/n.c*mean.c^2)))
#data

#consider adding some other effect size measures and/or study-level data too

Step 4. Summarize

Explore summary level data of all data. Explore aggregation levels that support the most reasonable data structure and minimize non-independence issues.

#evidence map####
require(maps)
world<-map_data("world")
map<-ggplot() + geom_polygon(data=world, fill="gray50", aes(x=long, y=lat, group=group))
map + geom_point(data=data, aes(x=long, y=lat)) +
  labs(x = "longitude", y = "latitude") #render a literal map, i.e. evidence map, of where we study the niche in deserts globally

#add in levels and color code points on map####
map + geom_point(data=data, aes(x=long, y=lat, color = paradigm)) + 
  scale_color_brewer(palette = "Paired") +
  labs(x = "longitude", y = "latitude", color = "")

#aggregation####
se <- function(x){
  sd(x)/sqrt(length(x))
}

data.simple <- data %>%
  group_by(study.ID, paradigm, technique, measure.success) %>%
  summarise(n = n(), mean.lrr = mean(lrr), mean.rii = mean(rii), mean.var = mean(var.es))

main.data <- data %>%
  group_by(study.ID, paradigm, intervention, outcome) %>%
  summarise(n = n(), mean.lrr = mean(lrr), mean.rii = mean(rii), mean.var = mean(var.es))


#EDA data####
simple.data <- data %>% group_by(study.ID, paradigm, technique, measure.success) %>% summarise(mean.rii = mean(rii), error = se(rii))
simple.data <- na.omit(simple.data)

parad.data <- data %>% group_by(study.ID, paradigm) %>% summarise(mean.rii = mean(rii), error = se(rii))
parad.data <- na.omit(parad.data)

tech.data <- data %>% group_by(study.ID, technique) %>% summarise(mean.rii = mean(rii), error = se(rii))
tech.data <- na.omit(tech.data)

success.data <- data %>% group_by(study.ID, measure.success) %>% summarise(mean.rii = mean(rii), error = se(rii))
success.data <- na.omit(success.data)

#active
active <- data %>%
  filter(paradigm == "active")

#viz for aggregation####
ggplot(na.omit(data.simple), aes(technique, n, fill = paradigm)) + 
  geom_bar(stat = "identity") + 
  coord_flip() + 
  scale_fill_brewer(palette = "Paired")

ggplot(na.omit(data.simple), aes(measure.success, n, fill = paradigm)) + 
  geom_bar(stat = "identity") + 
  coord_flip() + 
  scale_fill_brewer(palette = "Paired")

#better
ggplot(main.data, aes(intervention, n, fill = paradigm)) + 
  geom_bar(stat = "identity") + 
  coord_flip() + 
  scale_fill_brewer(palette = "Paired") +
  labs(fill = "")

ggplot(main.data, aes(outcome, n, fill = paradigm)) + 
  geom_bar(stat = "identity") + 
  coord_flip() + 
  scale_fill_brewer(palette = "Paired") +
  labs(fill = "")

Step 5a. EDA

Exploratory data analyses to understand data and QA/QC using Rii.

Step 5b. Models

Meta and conventional statistical models to explore relative efficacy.

Step 5. Synthesis stats

#p-value meta
library(metap)
mdata <- data %>%
  filter(paradigm == "active") %>%
  filter(!is.na(lrr)) %>%
  filter(!is.na(var.es)) %>%
  filter(!is.na(n.t)) %>%
  filter(!is.na(p)) %>%
  filter(!is.na(intervention)) %>%
  filter(is.finite(lrr))

schweder(mdata$p)

sumz(p, data = mdata)
## sumz =  52.08743 p =  0
mdata %>%
  split(.$intervention) %>%
  purrr::map(~sumz(.$p)) 
## $`carbon amendment`
## sumz =  12.80103 p =  8.089988e-38 
## 
## $`mycorrhizal inoculation`
## sumz =  10.1732 p =  1.305983e-24 
## 
## $nutrients
## sumz =  11.64501 p =  1.216527e-31 
## 
## $planting
## sumz =  35.34839 p =  5.306182e-274 
## 
## $seeding
## sumz =  29.35404 p =  1.060917e-189 
## 
## $vegetation
## sumz =  4.627053 p =  1.854529e-06 
## 
## $`water addition`
## sumz =  13.4316 p =  1.973814e-41
sumlog(mdata$p)
## chisq =  6401.81  with df =  2292  p =  0
#effect-size meta
library(meta)
m <- metagen(lrr, var.es, studlab = ID, byvar = intervention, data = mdata)
summary(m)
## Number of studies combined: k = 1086
## 
##                                          95%-CI            z p-value
## Fixed effect model   -0.0063 [-0.0063; -0.0063] -40591712.73       0
## Random effects model  0.0529 [ 0.0094;  0.0964]         2.38  0.0172
## 
## Quantifying heterogeneity:
## tau^2 = 0.1848; H = 17034959.73 [17034959.03; 17034960.43]; I^2 = 100.0% [100.0%; 100.0%]
## 
## Test of heterogeneity:
##                      Q d.f. p-value
##  314855990392312640.00 1085       0
## 
## Results for subgroups (fixed effect model):
##                                          k                     95%-CI
## intervention = seeding                 346 -0.0210 [-0.0210; -0.0210]
## intervention = planting                484 -0.0063 [-0.0063; -0.0063]
## intervention = vegetation               10 -0.0208 [-0.0218; -0.0199]
## intervention = nutrients                72 -0.0223 [-0.0717;  0.0272]
## intervention = carbon amendment         70 -1.2791 [-1.2845; -1.2738]
## intervention = mycorrhizal inoculation  30  0.7241 [ 0.7239;  0.7243]
## intervention = water addition           74  0.0037 [ 0.0025;  0.0049]
##                                                            Q   tau^2
## intervention = seeding                        17482024493.67  0.0099
## intervention = planting                314855972313047808.00  0.1848
## intervention = vegetation                           14971.11  0.0067
## intervention = nutrients                               10.53       0
## intervention = carbon amendment                      1618.90  0.0305
## intervention = mycorrhizal inoculation            2078953.52  0.0464
## intervention = water addition                         109.93 <0.0001
##                                           I^2
## intervention = seeding                 100.0%
## intervention = planting                100.0%
## intervention = vegetation               99.9%
## intervention = nutrients                 0.0%
## intervention = carbon amendment         95.7%
## intervention = mycorrhizal inoculation 100.0%
## intervention = water addition           33.6%
## 
## Test for subgroup differences (fixed effect model):
##                                    Q d.f. p-value
## Between groups          595144755.87    6       0
## Within groups  314855989797167936.00 1079       0
## 
## Results for subgroups (random effects model):
##                                          k                     95%-CI
## intervention = seeding                 346 -0.1580 [-0.1803; -0.1358]
## intervention = planting                484  0.0934 [ 0.0393;  0.1475]
## intervention = vegetation               10 -0.0080 [-0.1141;  0.0980]
## intervention = nutrients                72 -0.0223 [-0.0717;  0.0272]
## intervention = carbon amendment         70 -1.4672 [-1.6147; -1.3198]
## intervention = mycorrhizal inoculation  30  0.8426 [ 0.7533;  0.9319]
## intervention = water addition           74  0.0073 [-0.0013;  0.0159]
##                                                            Q   tau^2
## intervention = seeding                        17482024493.67  0.0099
## intervention = planting                314855972313047808.00  0.1848
## intervention = vegetation                           14971.11  0.0067
## intervention = nutrients                               10.53       0
## intervention = carbon amendment                      1618.90  0.0305
## intervention = mycorrhizal inoculation            2078953.52  0.0464
## intervention = water addition                         109.93 <0.0001
##                                           I^2
## intervention = seeding                 100.0%
## intervention = planting                100.0%
## intervention = vegetation               99.9%
## intervention = nutrients                 0.0%
## intervention = carbon amendment         95.7%
## intervention = mycorrhizal inoculation 100.0%
## intervention = water addition           33.6%
## 
## Test for subgroup differences (random effects model):
##                       Q d.f.  p-value
## Between groups   925.38    6 < 0.0001
## 
## Details on meta-analytical method:
## - Inverse variance method
## - DerSimonian-Laird estimator for tau^2
funnel(m)

#metabias(m)
#forest(m, sortvar = intervention)